[INFO] cloning repository https://github.com/SaintNicholas/sticks
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/SaintNicholas/sticks" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSaintNicholas%2Fsticks", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSaintNicholas%2Fsticks'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2a97f13c5e9975bf475ee3974002472500b76adc
[INFO] checking SaintNicholas/sticks against master#cfbc6d4cf1acbac5c025acf8ed68929caa551df3 for pr-75494-beta
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSaintNicholas%2Fsticks" "/workspace/builds/worker-3/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/SaintNicholas/sticks on toolchain cfbc6d4cf1acbac5c025acf8ed68929caa551df3
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+cfbc6d4cf1acbac5c025acf8ed68929caa551df3" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/SaintNicholas/sticks
[INFO] finished tweaking git repo https://github.com/SaintNicholas/sticks
[INFO] tweaked toml for git repo https://github.com/SaintNicholas/sticks written to /workspace/builds/worker-3/source/Cargo.toml
[INFO] crate git repo https://github.com/SaintNicholas/sticks already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+cfbc6d4cf1acbac5c025acf8ed68929caa551df3" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] error: the lock file /workspace/builds/worker-3/source/Cargo.lock needs to be updated but --locked was passed to prevent this
[INFO] [stderr] If you want to try to generate the lock file without accessing the network, use the --offline flag.
[INFO] the lockfile is outdated, regenerating it
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+cfbc6d4cf1acbac5c025acf8ed68929caa551df3" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }`
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+cfbc6d4cf1acbac5c025acf8ed68929caa551df3" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded nom v1.2.4
[INFO] [stderr]   Downloaded clap v2.33.3
[INFO] [stderr]   Downloaded num-bigint v0.1.44
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+cfbc6d4cf1acbac5c025acf8ed68929caa551df3" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 6d7fc77b0f75fbbed4fcc73b3050502725974629fe2dd2b4d3774a2af8722fc5
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "6d7fc77b0f75fbbed4fcc73b3050502725974629fe2dd2b4d3774a2af8722fc5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6d7fc77b0f75fbbed4fcc73b3050502725974629fe2dd2b4d3774a2af8722fc5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6d7fc77b0f75fbbed4fcc73b3050502725974629fe2dd2b4d3774a2af8722fc5", kill_on_drop: false }`
[INFO] [stdout] 6d7fc77b0f75fbbed4fcc73b3050502725974629fe2dd2b4d3774a2af8722fc5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+cfbc6d4cf1acbac5c025acf8ed68929caa551df3" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] cf99939340efe727f17e51062dd7e3ad38829082c29e34892c7786760e16e3e5
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "cf99939340efe727f17e51062dd7e3ad38829082c29e34892c7786760e16e3e5", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v1.0.1
[INFO] [stderr]    Compiling libc v0.2.76
[INFO] [stderr]    Compiling num-traits v0.2.12
[INFO] [stderr]    Compiling num-integer v0.1.43
[INFO] [stderr]    Compiling num-iter v0.1.41
[INFO] [stderr]     Checking rand v0.4.6
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking clap v2.33.3
[INFO] [stderr]     Checking num-complex v0.1.43
[INFO] [stderr]     Checking num-bigint v0.1.44
[INFO] [stderr]     Checking num-rational v0.1.42
[INFO] [stderr]     Checking num v0.1.42
[INFO] [stderr]     Checking sticks v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stdout]    --> src/wavefront/object_parser.rs:153:46
[INFO] [stdout]     |
[INFO] [stdout] 153 | ...   let mut triangle: Triangle = try!(construct_triangle_from_triangle_of_triplets(&object, triangle_of_triplets, &materialName));
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stdout]    --> src/wavefront/object_parser.rs:168:19
[INFO] [stdout]     |
[INFO] [stdout] 168 |     triangle.v1 = try!(get_indexed_vertex(&object.raw_vertices, triangle_of_triplets.v1.v));
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stdout]    --> src/wavefront/object_parser.rs:169:19
[INFO] [stdout]     |
[INFO] [stdout] 169 |     triangle.v2 = try!(get_indexed_vertex(&object.raw_vertices, triangle_of_triplets.v2.v));
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stdout]    --> src/wavefront/object_parser.rs:170:19
[INFO] [stdout]     |
[INFO] [stdout] 170 |     triangle.v3 = try!(get_indexed_vertex(&object.raw_vertices, triangle_of_triplets.v3.v));
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stdout]    --> src/wavefront/object_parser.rs:173:29
[INFO] [stdout]     |
[INFO] [stdout] 173 |         triangle.vt1 = Some(try!(get_indexed_vertex(&object.raw_vertices_texture, v)));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stdout]    --> src/wavefront/object_parser.rs:176:29
[INFO] [stdout]     |
[INFO] [stdout] 176 |         triangle.vt2 = Some(try!(get_indexed_vertex(&object.raw_vertices_texture, v)));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stdout]    --> src/wavefront/object_parser.rs:179:29
[INFO] [stdout]     |
[INFO] [stdout] 179 |         triangle.vt3 = Some(try!(get_indexed_vertex(&object.raw_vertices_texture, v)));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stdout]    --> src/wavefront/object_parser.rs:183:29
[INFO] [stdout]     |
[INFO] [stdout] 183 |         triangle.vn1 = Some(try!(get_indexed_vertex(&object.raw_vertices_normals, v)));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stdout]    --> src/wavefront/object_parser.rs:186:29
[INFO] [stdout]     |
[INFO] [stdout] 186 |         triangle.vn2 = Some(try!(get_indexed_vertex(&object.raw_vertices_normals, v)));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stdout]    --> src/wavefront/object_parser.rs:189:29
[INFO] [stdout]     |
[INFO] [stdout] 189 |         triangle.vn3 = Some(try!(get_indexed_vertex(&object.raw_vertices_normals, v)));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `geometry::matrix::*`
[INFO] [stdout]  --> src/geometry/vector.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use geometry::matrix::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition
[INFO] [stdout]   --> src/geometry/vector.rs:73:1
[INFO] [stdout]    |
[INFO] [stdout] 73 | / macro_rules! assert_delta {
[INFO] [stdout] 74 | |     ($x:expr, $y:expr, $d:expr) => {
[INFO] [stdout] 75 | |         if $x - $y >= $d || $y - $x >= $d { panic!(); }
[INFO] [stdout] 76 | |     }
[INFO] [stdout] 77 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/geometry/matrix.rs:118:15
[INFO] [stdout]     |
[INFO] [stdout] 118 |             if(row_with_nonzero_kk != k) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition
[INFO] [stdout]    --> src/geometry/matrix.rs:235:1
[INFO] [stdout]     |
[INFO] [stdout] 235 | / macro_rules! assert_delta {
[INFO] [stdout] 236 | |     ($x:expr, $y:expr, $d:expr) => {
[INFO] [stdout] 237 | |         if $x - $y >= $d || $y - $x >= $d { panic!("x: {:?}, y: {:?}, d: {:?}", $x, $y, $d); }
[INFO] [stdout] 238 | |     }
[INFO] [stdout] 239 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `digit`, `eof`, `not_line_ending`
[INFO] [stdout]  --> src/wavefront/material_parser.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | use nom::{space, digit, eof, not_line_ending};
[INFO] [stdout]   |                  ^^^^^  ^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `parse_blank_line`, `parse_comment`, `parse_eol`
[INFO] [stdout]  --> src/wavefront/material_parser.rs:4:66
[INFO] [stdout]   |
[INFO] [stdout] 4 | use wavefront::parser_utilities::{parse_f64, parse_ignored_line, parse_blank_line, parse_comment, parse_eol, not_space};
[INFO] [stdout]   |                                                                  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused label
[INFO] [stdout]    --> src/wavefront/object_parser.rs:138:5
[INFO] [stdout]     |
[INFO] [stdout] 138 |     'parsing_values: for value in values {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_labels)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SubCommand`
[INFO] [stdout]   --> src/main.rs:10:22
[INFO] [stdout]    |
[INFO] [stdout] 10 | use clap::{App, Arg, SubCommand};
[INFO] [stdout]    |                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::collections::HashSet;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stdout]    --> src/wavefront/object_parser.rs:153:46
[INFO] [stdout]     |
[INFO] [stdout] 153 | ...   let mut triangle: Triangle = try!(construct_triangle_from_triangle_of_triplets(&object, triangle_of_triplets, &materialName));
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stdout]    --> src/wavefront/object_parser.rs:168:19
[INFO] [stdout]     |
[INFO] [stdout] 168 |     triangle.v1 = try!(get_indexed_vertex(&object.raw_vertices, triangle_of_triplets.v1.v));
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stdout]    --> src/wavefront/object_parser.rs:169:19
[INFO] [stdout]     |
[INFO] [stdout] 169 |     triangle.v2 = try!(get_indexed_vertex(&object.raw_vertices, triangle_of_triplets.v2.v));
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stdout]    --> src/wavefront/object_parser.rs:170:19
[INFO] [stdout]     |
[INFO] [stdout] 170 |     triangle.v3 = try!(get_indexed_vertex(&object.raw_vertices, triangle_of_triplets.v3.v));
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stdout]    --> src/wavefront/object_parser.rs:173:29
[INFO] [stdout]     |
[INFO] [stdout] 173 |         triangle.vt1 = Some(try!(get_indexed_vertex(&object.raw_vertices_texture, v)));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stdout]    --> src/wavefront/object_parser.rs:176:29
[INFO] [stdout]     |
[INFO] [stdout] 176 |         triangle.vt2 = Some(try!(get_indexed_vertex(&object.raw_vertices_texture, v)));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stdout]    --> src/wavefront/object_parser.rs:179:29
[INFO] [stdout]     |
[INFO] [stdout] 179 |         triangle.vt3 = Some(try!(get_indexed_vertex(&object.raw_vertices_texture, v)));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stdout]    --> src/wavefront/object_parser.rs:183:29
[INFO] [stdout]     |
[INFO] [stdout] 183 |         triangle.vn1 = Some(try!(get_indexed_vertex(&object.raw_vertices_normals, v)));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stdout]    --> src/wavefront/object_parser.rs:186:29
[INFO] [stdout]     |
[INFO] [stdout] 186 |         triangle.vn2 = Some(try!(get_indexed_vertex(&object.raw_vertices_normals, v)));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stdout]    --> src/wavefront/object_parser.rs:189:29
[INFO] [stdout]     |
[INFO] [stdout] 189 |         triangle.vn3 = Some(try!(get_indexed_vertex(&object.raw_vertices_normals, v)));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `geometry::matrix::*`
[INFO] [stdout]  --> src/geometry/vector.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use geometry::matrix::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/geometry/matrix.rs:118:15
[INFO] [stdout]     |
[INFO] [stdout] 118 |             if(row_with_nonzero_kk != k) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `digit`, `eof`, `not_line_ending`
[INFO] [stdout]  --> src/wavefront/material_parser.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | use nom::{space, digit, eof, not_line_ending};
[INFO] [stdout]   |                  ^^^^^  ^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `parse_blank_line`, `parse_comment`, `parse_eol`
[INFO] [stdout]  --> src/wavefront/material_parser.rs:4:66
[INFO] [stdout]   |
[INFO] [stdout] 4 | use wavefront::parser_utilities::{parse_f64, parse_ignored_line, parse_blank_line, parse_comment, parse_eol, not_space};
[INFO] [stdout]   |                                                                  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Err`
[INFO] [stdout]    --> src/wavefront/material_parser.rs:481:15
[INFO] [stdout]     |
[INFO] [stdout] 481 |     use nom::{Err};
[INFO] [stdout]     |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused label
[INFO] [stdout]    --> src/wavefront/object_parser.rs:138:5
[INFO] [stdout]     |
[INFO] [stdout] 138 |     'parsing_values: for value in values {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_labels)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::IResult`
[INFO] [stdout]    --> src/wavefront/object_parser.rs:419:9
[INFO] [stdout]     |
[INFO] [stdout] 419 |     use nom::IResult;
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SubCommand`
[INFO] [stdout]   --> src/main.rs:10:22
[INFO] [stdout]    |
[INFO] [stdout] 10 | use clap::{App, Arg, SubCommand};
[INFO] [stdout]    |                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::collections::HashSet;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string()
[INFO] [stdout]   --> src/main.rs:87:63
[INFO] [stdout]    |
[INFO] [stdout] 87 |             Err(why) => panic!("couldn't open {}: {}", j, why.description()),
[INFO] [stdout]    |                                                               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string()
[INFO] [stdout]   --> src/main.rs:93:68
[INFO] [stdout]    |
[INFO] [stdout] 93 |             Err(why) => panic!("couldn't read from {}: {}", j, why.description()),
[INFO] [stdout]    |                                                                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:108:73
[INFO] [stdout]     |
[INFO] [stdout] 108 |         Err(why) => panic!("couldn't open {}: {}", "File to write", why.description()),
[INFO] [stdout]     |                                                                         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string()
[INFO] [stdout]   --> src/main.rs:87:63
[INFO] [stdout]    |
[INFO] [stdout] 87 |             Err(why) => panic!("couldn't open {}: {}", j, why.description()),
[INFO] [stdout]    |                                                               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string()
[INFO] [stdout]   --> src/main.rs:93:68
[INFO] [stdout]    |
[INFO] [stdout] 93 |             Err(why) => panic!("couldn't read from {}: {}", j, why.description()),
[INFO] [stdout]    |                                                                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string()
[INFO] [stdout]    --> src/main.rs:108:73
[INFO] [stdout]     |
[INFO] [stdout] 108 |         Err(why) => panic!("couldn't open {}: {}", "File to write", why.description()),
[INFO] [stdout]     |                                                                         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `object` is never read
[INFO] [stdout]   --> src/main.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let mut object: Option<Object> = None;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `output` is never read
[INFO] [stdout]   --> src/main.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |     let mut output: Option<String> = None;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `temp` is never read
[INFO] [stdout]    --> src/geometry/matrix.rs:120:25
[INFO] [stdout]     |
[INFO] [stdout] 120 |                     let mut temp = zero;
[INFO] [stdout]     |                         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `remaining`
[INFO] [stdout]   --> src/wavefront/material_parser.rs:87:30
[INFO] [stdout]    |
[INFO] [stdout] 87 |     } else if let Incomplete(remaining) = result {
[INFO] [stdout]    |                              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_remaining`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `remaining`
[INFO] [stdout]    --> src/wavefront/object_parser.rs:127:30
[INFO] [stdout]     |
[INFO] [stdout] 127 |     } else if let Incomplete(remaining) = result {
[INFO] [stdout]     |                              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_remaining`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `usize_index` is never read
[INFO] [stdout]    --> src/wavefront/object_parser.rs:199:9
[INFO] [stdout]     |
[INFO] [stdout] 199 |     let mut usize_index = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]   --> src/wavefront/parser_utilities.rs:18:28
[INFO] [stdout]    |
[INFO] [stdout] 18 |                if let Some(j) = neg {
[INFO] [stdout]    |                            ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]   --> src/wavefront/parser_utilities.rs:33:28
[INFO] [stdout]    |
[INFO] [stdout] 33 |                if let Some(j) = neg {
[INFO] [stdout]    |                            ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/wavefront/object_parser.rs:153:21
[INFO] [stdout]     |
[INFO] [stdout] 153 | ...   let mut triangle: Triangle = try!(construct_triangle_from_triangle_of_triplets(&object, triangle_of_triplets, &materialName));
[INFO] [stdout]     |           ----^^^^^^^^
[INFO] [stdout]     |           |
[INFO] [stdout]     |           help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/wavefront/parser_utilities.rs:31:20
[INFO] [stdout]    |
[INFO] [stdout] 31 |                let mut int_string: String = a.to_string();
[INFO] [stdout]    |                    ----^^^^^^^^^^
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `object` is never read
[INFO] [stdout]   --> src/main.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let mut object: Option<Object> = None;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `output` is never read
[INFO] [stdout]   --> src/main.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |     let mut output: Option<String> = None;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `temp` is never read
[INFO] [stdout]    --> src/geometry/matrix.rs:120:25
[INFO] [stdout]     |
[INFO] [stdout] 120 |                     let mut temp = zero;
[INFO] [stdout]     |                         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `remaining`
[INFO] [stdout]   --> src/wavefront/material_parser.rs:87:30
[INFO] [stdout]    |
[INFO] [stdout] 87 |     } else if let Incomplete(remaining) = result {
[INFO] [stdout]    |                              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_remaining`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `remaining`
[INFO] [stdout]    --> src/wavefront/object_parser.rs:127:30
[INFO] [stdout]     |
[INFO] [stdout] 127 |     } else if let Incomplete(remaining) = result {
[INFO] [stdout]     |                              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_remaining`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `usize_index` is never read
[INFO] [stdout]    --> src/wavefront/object_parser.rs:199:9
[INFO] [stdout]     |
[INFO] [stdout] 199 |     let mut usize_index = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]   --> src/wavefront/parser_utilities.rs:18:28
[INFO] [stdout]    |
[INFO] [stdout] 18 |                if let Some(j) = neg {
[INFO] [stdout]    |                            ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]   --> src/wavefront/parser_utilities.rs:33:28
[INFO] [stdout]    |
[INFO] [stdout] 33 |                if let Some(j) = neg {
[INFO] [stdout]    |                            ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `scale`
[INFO] [stdout]   --> src/geometry/vector.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn scale(self, other: T) -> Vec3<T> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `dot_product`
[INFO] [stdout]   --> src/geometry/vector.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn dot_product(self, other: Vec3<T>) -> T {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `cross_product`
[INFO] [stdout]   --> src/geometry/vector.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 |     fn cross_product(self, other: Vec3<T>) -> Vec3<T> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `norm`
[INFO] [stdout]   --> src/geometry/vector.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn norm(&self) -> T {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `length`
[INFO] [stdout]   --> src/geometry/vector.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn length(&self) -> T {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `normalize`
[INFO] [stdout]   --> src/geometry/vector.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn normalize(self) -> Vec3<T>{
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `assert_eq_float_range`
[INFO] [stdout]   --> src/geometry/vector.rs:79:4
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn assert_eq_float_range<T: num::Float>(n1: T, n2: T, range: T) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `new_identity`
[INFO] [stdout]   --> src/geometry/matrix.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 |     fn new_identity() -> Matrix44<T> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `transpose`
[INFO] [stdout]   --> src/geometry/matrix.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 |     fn transpose(self) -> Matrix44<T> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `inverse2`
[INFO] [stdout]   --> src/geometry/matrix.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub fn inverse2(self) -> Matrix44<T> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `multDirMatrix`
[INFO] [stdout]    --> src/geometry/matrix.rs:187:8
[INFO] [stdout]     |
[INFO] [stdout] 187 |     fn multDirMatrix(&self, src: &Vec3<T>) -> Vec3<T> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `assert_eq_float_range`
[INFO] [stdout]    --> src/geometry/matrix.rs:241:4
[INFO] [stdout]     |
[INFO] [stdout] 241 | fn assert_eq_float_range<T: num::Float>(n1: T, n2: T, range: T) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `ColorOnAmbientOff`
[INFO] [stdout]   --> src/wavefront/material_parser.rs:51:3
[INFO] [stdout]    |
[INFO] [stdout] 51 |   ColorOnAmbientOff,
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `ColorOnAmbientOn`
[INFO] [stdout]   --> src/wavefront/material_parser.rs:52:3
[INFO] [stdout]    |
[INFO] [stdout] 52 |   ColorOnAmbientOn,
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `HighlightOn`
[INFO] [stdout]   --> src/wavefront/material_parser.rs:53:3
[INFO] [stdout]    |
[INFO] [stdout] 53 |   HighlightOn,
[INFO] [stdout]    |   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `ReflectionOnAndRayTraceOn`
[INFO] [stdout]   --> src/wavefront/material_parser.rs:54:3
[INFO] [stdout]    |
[INFO] [stdout] 54 |   ReflectionOnAndRayTraceOn,
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `TransparencyGlassOnReflectionRayTraceOn`
[INFO] [stdout]   --> src/wavefront/material_parser.rs:55:3
[INFO] [stdout]    |
[INFO] [stdout] 55 |   TransparencyGlassOnReflectionRayTraceOn,
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `ReflectionFresnelOnAndRayTraceOn`
[INFO] [stdout]   --> src/wavefront/material_parser.rs:56:3
[INFO] [stdout]    |
[INFO] [stdout] 56 |   ReflectionFresnelOnAndRayTraceOn,
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `TransparencyRefractionOnReflectionFresnelOffAndRayTraceOn`
[INFO] [stdout]   --> src/wavefront/material_parser.rs:57:3
[INFO] [stdout]    |
[INFO] [stdout] 57 |   TransparencyRefractionOnReflectionFresnelOffAndRayTraceOn,
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `TransparencyRefractionOnReflectionFresnelOnAndRayTraceOn`
[INFO] [stdout]   --> src/wavefront/material_parser.rs:58:3
[INFO] [stdout]    |
[INFO] [stdout] 58 |   TransparencyRefractionOnReflectionFresnelOnAndRayTraceOn,
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `TeflectionOnAndRayTraceOff`
[INFO] [stdout]   --> src/wavefront/material_parser.rs:59:3
[INFO] [stdout]    |
[INFO] [stdout] 59 |   TeflectionOnAndRayTraceOff,
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `TransparencyGlassOnReflectionRayTraceOff`
[INFO] [stdout]   --> src/wavefront/material_parser.rs:60:3
[INFO] [stdout]    |
[INFO] [stdout] 60 |   TransparencyGlassOnReflectionRayTraceOff,
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `CastsShadowsOntoInvisibleSurfaces`
[INFO] [stdout]   --> src/wavefront/material_parser.rs:61:3
[INFO] [stdout]    |
[INFO] [stdout] 61 |   CastsShadowsOntoInvisibleSurfaces,
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Name`
[INFO] [stdout]   --> src/wavefront/material_parser.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     Name(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `ColorAmbient`
[INFO] [stdout]   --> src/wavefront/material_parser.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 67 |     ColorAmbient(Color),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `ColorDiffuse`
[INFO] [stdout]   --> src/wavefront/material_parser.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 |     ColorDiffuse(Color),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `ColorSpecular`
[INFO] [stdout]   --> src/wavefront/material_parser.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 69 |     ColorSpecular(Color),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `ColorTransmission`
[INFO] [stdout]   --> src/wavefront/material_parser.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 70 |     ColorTransmission(Color),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Illum`
[INFO] [stdout]   --> src/wavefront/material_parser.rs:71:5
[INFO] [stdout]    |
[INFO] [stdout] 71 |     Illum(Illumination),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Alpha`
[INFO] [stdout]   --> src/wavefront/material_parser.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 |     Alpha(f64),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `SpecularCoefficient`
[INFO] [stdout]   --> src/wavefront/material_parser.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 73 |     SpecularCoefficient(f64),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `OpticalDensity`
[INFO] [stdout]   --> src/wavefront/material_parser.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 74 |     OpticalDensity(f64),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `parse_materials`
[INFO] [stdout]   --> src/wavefront/material_parser.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn parse_materials(string: &str) -> Result<Vec<Material>, String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `construct_material_structs`
[INFO] [stdout]   --> src/wavefront/material_parser.rs:94:4
[INFO] [stdout]    |
[INFO] [stdout] 94 | fn construct_material_structs(values: Vec<Value>) -> Result<Vec<Material>, String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `construct_material_struct`
[INFO] [stdout]    --> src/wavefront/material_parser.rs:130:4
[INFO] [stdout]     |
[INFO] [stdout] 130 | fn construct_material_struct(values: &[Value]) -> Result<Material, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `ValueVertexTexture`
[INFO] [stdout]   --> src/wavefront/object_parser.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 91 |     ValueVertexTexture(Vertex),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `computePixelCoordinates` should have a snake case name
[INFO] [stdout]   --> src/main.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn computePixelCoordinates (
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `compute_pixel_coordinates`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pWorld` should have a snake case name
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pWorld: &Vec3<f64>,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to snake case: `p_world`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `worldToCamera` should have a snake case name
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     worldToCamera: &Matrix44<f64>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to snake case: `world_to_camera`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `canvasWidth` should have a snake case name
[INFO] [stdout]   --> src/main.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     canvasWidth: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to snake case: `canvas_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `canvasHeight` should have a snake case name
[INFO] [stdout]   --> src/main.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     canvasHeight: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `canvas_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `imageWidth` should have a snake case name
[INFO] [stdout]   --> src/main.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     imageWidth: u32,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `image_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `imageHeight` should have a snake case name
[INFO] [stdout]   --> src/main.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     imageHeight: u32) -> (u32, u32) {
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to snake case: `image_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pCamera` should have a snake case name
[INFO] [stdout]   --> src/main.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |     let pCamera = worldToCamera.multVecMatrix(pWorld);
[INFO] [stdout]    |         ^^^^^^^ help: convert the identifier to snake case: `p_camera`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pScreenX` should have a snake case name
[INFO] [stdout]   --> src/main.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let pScreenX = pCamera.x / -pCamera.z;
[INFO] [stdout]    |         ^^^^^^^^ help: convert the identifier to snake case: `p_screen_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pScreenY` should have a snake case name
[INFO] [stdout]   --> src/main.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let pScreenY = pCamera.y / -pCamera.z;
[INFO] [stdout]    |         ^^^^^^^^ help: convert the identifier to snake case: `p_screen_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pNDCX` should have a snake case name
[INFO] [stdout]   --> src/main.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |     let pNDCX = (pScreenX + canvasWidth * 0.5) / canvasWidth;
[INFO] [stdout]    |         ^^^^^ help: convert the identifier to snake case: `p_ndcx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pNDCY` should have a snake case name
[INFO] [stdout]   --> src/main.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let pNDCY = (pScreenY + canvasHeight * 0.5) / canvasHeight;
[INFO] [stdout]    |         ^^^^^ help: convert the identifier to snake case: `p_ndcy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pRasterX` should have a snake case name
[INFO] [stdout]   --> src/main.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let pRasterX: u32 = (pNDCX * imageWidth as f64) as u32;
[INFO] [stdout]    |         ^^^^^^^^ help: convert the identifier to snake case: `p_raster_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pRasterY` should have a snake case name
[INFO] [stdout]   --> src/main.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let pRasterY: u32 = ((1.0 - pNDCY) * imageHeight as f64) as u32;
[INFO] [stdout]    |         ^^^^^^^^ help: convert the identifier to snake case: `p_raster_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/main.rs:112:5
[INFO] [stdout]     |
[INFO] [stdout] 112 |     output_file.write_all(b"<svg version=\"1.1\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns=\"http://www.w3.org/2000/svg\" height=\"512\" width=\"512\">");
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `cameraToWorld` should have a snake case name
[INFO] [stdout]    --> src/main.rs:114:9
[INFO] [stdout]     |
[INFO] [stdout] 114 |     let cameraToWorld: Matrix44<f64> = Matrix44::new(0.871214, 0.0, -0.490904, 0.0, -0.192902, 0.919559, -0.342346, 0.0, 0.451415, 0.3929...
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `camera_to_world`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `worldToCamera` should have a snake case name
[INFO] [stdout]    --> src/main.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 115 |     let worldToCamera: Matrix44<f64> = cameraToWorld.clone().inverse();
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `world_to_camera`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `canvasWidth` should have a snake case name
[INFO] [stdout]    --> src/main.rs:116:9
[INFO] [stdout]     |
[INFO] [stdout] 116 |     let canvasWidth: f64 = 2.0;
[INFO] [stdout]     |         ^^^^^^^^^^^ help: convert the identifier to snake case: `canvas_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `canvasHeight` should have a snake case name
[INFO] [stdout]    --> src/main.rs:117:9
[INFO] [stdout]     |
[INFO] [stdout] 117 |     let canvasHeight: f64 = 2.0;
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: convert the identifier to snake case: `canvas_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `imageWidth` should have a snake case name
[INFO] [stdout]    --> src/main.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |     let imageWidth: u32 = 512;
[INFO] [stdout]     |         ^^^^^^^^^^ help: convert the identifier to snake case: `image_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `imageHeight` should have a snake case name
[INFO] [stdout]    --> src/main.rs:119:9
[INFO] [stdout]     |
[INFO] [stdout] 119 |     let imageHeight: u32 = 512;
[INFO] [stdout]     |         ^^^^^^^^^^^ help: convert the identifier to snake case: `image_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `v0Worldy` should have a snake case name
[INFO] [stdout]    --> src/main.rs:123:13
[INFO] [stdout]     |
[INFO] [stdout] 123 |         let v0Worldy = uobject.triangles[i].v1;
[INFO] [stdout]     |             ^^^^^^^^ help: convert the identifier to snake case: `v0_worldy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `v0World` should have a snake case name
[INFO] [stdout]    --> src/main.rs:124:17
[INFO] [stdout]     |
[INFO] [stdout] 124 |         let ref v0World: Vec3<f64> = Vec3::new(v0Worldy.x, v0Worldy.y, v0Worldy.z);
[INFO] [stdout]     |                 ^^^^^^^ help: convert the identifier to snake case: `v0_world`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `v1Worldy` should have a snake case name
[INFO] [stdout]    --> src/main.rs:125:13
[INFO] [stdout]     |
[INFO] [stdout] 125 |         let v1Worldy = uobject.triangles[i].v2;
[INFO] [stdout]     |             ^^^^^^^^ help: convert the identifier to snake case: `v1_worldy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `v1World` should have a snake case name
[INFO] [stdout]    --> src/main.rs:126:17
[INFO] [stdout]     |
[INFO] [stdout] 126 |         let ref v1World: Vec3<f64> = Vec3::new(v1Worldy.x, v1Worldy.y, v1Worldy.z);
[INFO] [stdout]     |                 ^^^^^^^ help: convert the identifier to snake case: `v1_world`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `v2Worldy` should have a snake case name
[INFO] [stdout]    --> src/main.rs:127:13
[INFO] [stdout]     |
[INFO] [stdout] 127 |         let v2Worldy = uobject.triangles[i].v3;
[INFO] [stdout]     |             ^^^^^^^^ help: convert the identifier to snake case: `v2_worldy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `v2World` should have a snake case name
[INFO] [stdout]    --> src/main.rs:128:17
[INFO] [stdout]     |
[INFO] [stdout] 128 |         let ref v2World: Vec3<f64> = Vec3::new(v2Worldy.x, v2Worldy.y, v2Worldy.z);
[INFO] [stdout]     |                 ^^^^^^^ help: convert the identifier to snake case: `v2_world`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `v0RasterX` should have a snake case name
[INFO] [stdout]    --> src/main.rs:130:14
[INFO] [stdout]     |
[INFO] [stdout] 130 |         let (v0RasterX, v0RasterY) = computePixelCoordinates(v0World, &worldToCamera, canvasWidth, canvasHeight, imageWidth, imageHeight);
[INFO] [stdout]     |              ^^^^^^^^^ help: convert the identifier to snake case: `v0_raster_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `v0RasterY` should have a snake case name
[INFO] [stdout]    --> src/main.rs:130:25
[INFO] [stdout]     |
[INFO] [stdout] 130 |         let (v0RasterX, v0RasterY) = computePixelCoordinates(v0World, &worldToCamera, canvasWidth, canvasHeight, imageWidth, imageHeight);
[INFO] [stdout]     |                         ^^^^^^^^^ help: convert the identifier to snake case: `v0_raster_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `v1RasterX` should have a snake case name
[INFO] [stdout]    --> src/main.rs:131:14
[INFO] [stdout]     |
[INFO] [stdout] 131 |         let (v1RasterX, v1RasterY) = computePixelCoordinates(v1World, &worldToCamera, canvasWidth, canvasHeight, imageWidth, imageHeight);
[INFO] [stdout]     |              ^^^^^^^^^ help: convert the identifier to snake case: `v1_raster_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `v1RasterY` should have a snake case name
[INFO] [stdout]    --> src/main.rs:131:25
[INFO] [stdout]     |
[INFO] [stdout] 131 |         let (v1RasterX, v1RasterY) = computePixelCoordinates(v1World, &worldToCamera, canvasWidth, canvasHeight, imageWidth, imageHeight);
[INFO] [stdout]     |                         ^^^^^^^^^ help: convert the identifier to snake case: `v1_raster_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `v2RasterX` should have a snake case name
[INFO] [stdout]    --> src/main.rs:132:14
[INFO] [stdout]     |
[INFO] [stdout] 132 |         let (v2RasterX, v2RasterY) = computePixelCoordinates(v2World, &worldToCamera, canvasWidth, canvasHeight, imageWidth, imageHeight);
[INFO] [stdout]     |              ^^^^^^^^^ help: convert the identifier to snake case: `v2_raster_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `v2RasterY` should have a snake case name
[INFO] [stdout]    --> src/main.rs:132:25
[INFO] [stdout]     |
[INFO] [stdout] 132 |         let (v2RasterX, v2RasterY) = computePixelCoordinates(v2World, &worldToCamera, canvasWidth, canvasHeight, imageWidth, imageHeight);
[INFO] [stdout]     |                         ^^^^^^^^^ help: convert the identifier to snake case: `v2_raster_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/main.rs:134:9
[INFO] [stdout]     |
[INFO] [stdout] 134 | ...   output_file.write_fmt(format_args!("<line x1=\"{}\" y1=\"{}\" x2=\"{}\" y2=\"{}\" style=\"stroke:rgb(0,0,0);stroke-width:1\" />", v0RasterX, v0RasterY, v1RasterX, v1RasterY));
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/main.rs:135:9
[INFO] [stdout]     |
[INFO] [stdout] 135 | ...   output_file.write_fmt(format_args!("<line x1=\"{}\" y1=\"{}\" x2=\"{}\" y2=\"{}\" style=\"stroke:rgb(0,0,0);stroke-width:1\" />", v1RasterX, v1RasterY, v2RasterX, v2RasterY));
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/main.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 | ...   output_file.write_fmt(format_args!("<line x1=\"{}\" y1=\"{}\" x2=\"{}\" y2=\"{}\" style=\"stroke:rgb(0,0,0);stroke-width:1\" />", v2RasterX, v2RasterY, v0RasterX, v0RasterY));
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/main.rs:139:5
[INFO] [stdout]     |
[INFO] [stdout] 139 |     output_file.write_all(b"</svg>");
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `multVecMatrix` should have a snake case name
[INFO] [stdout]    --> src/geometry/matrix.rs:178:12
[INFO] [stdout]     |
[INFO] [stdout] 178 |     pub fn multVecMatrix(&self, src: &Vec3<T>) -> Vec3<T> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^ help: convert the identifier to snake case: `mult_vec_matrix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `multDirMatrix` should have a snake case name
[INFO] [stdout]    --> src/geometry/matrix.rs:187:8
[INFO] [stdout]     |
[INFO] [stdout] 187 |     fn multDirMatrix(&self, src: &Vec3<T>) -> Vec3<T> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^ help: convert the identifier to snake case: `mult_dir_matrix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `materialName` should have a snake case name
[INFO] [stdout]   --> src/wavefront/object_parser.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub materialName: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: convert the identifier to snake case: `material_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `materialName` should have a snake case name
[INFO] [stdout]    --> src/wavefront/object_parser.rs:136:13
[INFO] [stdout]     |
[INFO] [stdout] 136 |     let mut materialName: String = "".to_string();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: convert the identifier to snake case: `material_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_ValueGroup_value` should have a snake case name
[INFO] [stdout]    --> src/wavefront/object_parser.rs:369:8
[INFO] [stdout]     |
[INFO] [stdout] 369 | named!(parse_ValueGroup_value<Value>,
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `parse_value_group_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_ValueGroup_names` should have a snake case name
[INFO] [stdout]    --> src/wavefront/object_parser.rs:377:8
[INFO] [stdout]     |
[INFO] [stdout] 377 | named!(parse_ValueGroup_names<Vec<String> >,
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `parse_value_group_names`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_smoothing_ValueGroup_value` should have a snake case name
[INFO] [stdout]    --> src/wavefront/object_parser.rs:396:8
[INFO] [stdout]     |
[INFO] [stdout] 396 | named!(parse_smoothing_ValueGroup_value<Value>,
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `parse_smoothing_value_group_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_smoothing_ValueGroup` should have a snake case name
[INFO] [stdout]    --> src/wavefront/object_parser.rs:404:8
[INFO] [stdout]     |
[INFO] [stdout] 404 | named!(parse_smoothing_ValueGroup<isize>,
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `parse_smoothing_value_group`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 113 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/wavefront/object_parser.rs:153:21
[INFO] [stdout]     |
[INFO] [stdout] 153 | ...   let mut triangle: Triangle = try!(construct_triangle_from_triangle_of_triplets(&object, triangle_of_triplets, &materialName));
[INFO] [stdout]     |           ----^^^^^^^^
[INFO] [stdout]     |           |
[INFO] [stdout]     |           help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/wavefront/parser_utilities.rs:31:20
[INFO] [stdout]    |
[INFO] [stdout] 31 |                let mut int_string: String = a.to_string();
[INFO] [stdout]    |                    ----^^^^^^^^^^
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `assert_eq_float_range`
[INFO] [stdout]   --> src/geometry/vector.rs:79:4
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn assert_eq_float_range<T: num::Float>(n1: T, n2: T, range: T) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `multDirMatrix`
[INFO] [stdout]    --> src/geometry/matrix.rs:187:8
[INFO] [stdout]     |
[INFO] [stdout] 187 |     fn multDirMatrix(&self, src: &Vec3<T>) -> Vec3<T> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `assert_eq_float_range`
[INFO] [stdout]    --> src/geometry/matrix.rs:241:4
[INFO] [stdout]     |
[INFO] [stdout] 241 | fn assert_eq_float_range<T: num::Float>(n1: T, n2: T, range: T) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `computePixelCoordinates` should have a snake case name
[INFO] [stdout]   --> src/main.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn computePixelCoordinates (
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `compute_pixel_coordinates`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pWorld` should have a snake case name
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pWorld: &Vec3<f64>,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to snake case: `p_world`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `worldToCamera` should have a snake case name
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     worldToCamera: &Matrix44<f64>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to snake case: `world_to_camera`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `canvasWidth` should have a snake case name
[INFO] [stdout]   --> src/main.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     canvasWidth: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to snake case: `canvas_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `canvasHeight` should have a snake case name
[INFO] [stdout]   --> src/main.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     canvasHeight: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `canvas_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `imageWidth` should have a snake case name
[INFO] [stdout]   --> src/main.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     imageWidth: u32,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `image_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `imageHeight` should have a snake case name
[INFO] [stdout]   --> src/main.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     imageHeight: u32) -> (u32, u32) {
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to snake case: `image_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pCamera` should have a snake case name
[INFO] [stdout]   --> src/main.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |     let pCamera = worldToCamera.multVecMatrix(pWorld);
[INFO] [stdout]    |         ^^^^^^^ help: convert the identifier to snake case: `p_camera`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pScreenX` should have a snake case name
[INFO] [stdout]   --> src/main.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let pScreenX = pCamera.x / -pCamera.z;
[INFO] [stdout]    |         ^^^^^^^^ help: convert the identifier to snake case: `p_screen_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pScreenY` should have a snake case name
[INFO] [stdout]   --> src/main.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let pScreenY = pCamera.y / -pCamera.z;
[INFO] [stdout]    |         ^^^^^^^^ help: convert the identifier to snake case: `p_screen_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pNDCX` should have a snake case name
[INFO] [stdout]   --> src/main.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |     let pNDCX = (pScreenX + canvasWidth * 0.5) / canvasWidth;
[INFO] [stdout]    |         ^^^^^ help: convert the identifier to snake case: `p_ndcx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pNDCY` should have a snake case name
[INFO] [stdout]   --> src/main.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let pNDCY = (pScreenY + canvasHeight * 0.5) / canvasHeight;
[INFO] [stdout]    |         ^^^^^ help: convert the identifier to snake case: `p_ndcy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pRasterX` should have a snake case name
[INFO] [stdout]   --> src/main.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let pRasterX: u32 = (pNDCX * imageWidth as f64) as u32;
[INFO] [stdout]    |         ^^^^^^^^ help: convert the identifier to snake case: `p_raster_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pRasterY` should have a snake case name
[INFO] [stdout]   --> src/main.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let pRasterY: u32 = ((1.0 - pNDCY) * imageHeight as f64) as u32;
[INFO] [stdout]    |         ^^^^^^^^ help: convert the identifier to snake case: `p_raster_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/main.rs:112:5
[INFO] [stdout]     |
[INFO] [stdout] 112 |     output_file.write_all(b"<svg version=\"1.1\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns=\"http://www.w3.org/2000/svg\" height=\"512\" width=\"512\">");
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `cameraToWorld` should have a snake case name
[INFO] [stdout]    --> src/main.rs:114:9
[INFO] [stdout]     |
[INFO] [stdout] 114 |     let cameraToWorld: Matrix44<f64> = Matrix44::new(0.871214, 0.0, -0.490904, 0.0, -0.192902, 0.919559, -0.342346, 0.0, 0.451415, 0.3929...
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `camera_to_world`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `worldToCamera` should have a snake case name
[INFO] [stdout]    --> src/main.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 115 |     let worldToCamera: Matrix44<f64> = cameraToWorld.clone().inverse();
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `world_to_camera`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `canvasWidth` should have a snake case name
[INFO] [stdout]    --> src/main.rs:116:9
[INFO] [stdout]     |
[INFO] [stdout] 116 |     let canvasWidth: f64 = 2.0;
[INFO] [stdout]     |         ^^^^^^^^^^^ help: convert the identifier to snake case: `canvas_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `canvasHeight` should have a snake case name
[INFO] [stdout]    --> src/main.rs:117:9
[INFO] [stdout]     |
[INFO] [stdout] 117 |     let canvasHeight: f64 = 2.0;
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: convert the identifier to snake case: `canvas_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `imageWidth` should have a snake case name
[INFO] [stdout]    --> src/main.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |     let imageWidth: u32 = 512;
[INFO] [stdout]     |         ^^^^^^^^^^ help: convert the identifier to snake case: `image_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `imageHeight` should have a snake case name
[INFO] [stdout]    --> src/main.rs:119:9
[INFO] [stdout]     |
[INFO] [stdout] 119 |     let imageHeight: u32 = 512;
[INFO] [stdout]     |         ^^^^^^^^^^^ help: convert the identifier to snake case: `image_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `v0Worldy` should have a snake case name
[INFO] [stdout]    --> src/main.rs:123:13
[INFO] [stdout]     |
[INFO] [stdout] 123 |         let v0Worldy = uobject.triangles[i].v1;
[INFO] [stdout]     |             ^^^^^^^^ help: convert the identifier to snake case: `v0_worldy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `v0World` should have a snake case name
[INFO] [stdout]    --> src/main.rs:124:17
[INFO] [stdout]     |
[INFO] [stdout] 124 |         let ref v0World: Vec3<f64> = Vec3::new(v0Worldy.x, v0Worldy.y, v0Worldy.z);
[INFO] [stdout]     |                 ^^^^^^^ help: convert the identifier to snake case: `v0_world`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `v1Worldy` should have a snake case name
[INFO] [stdout]    --> src/main.rs:125:13
[INFO] [stdout]     |
[INFO] [stdout] 125 |         let v1Worldy = uobject.triangles[i].v2;
[INFO] [stdout]     |             ^^^^^^^^ help: convert the identifier to snake case: `v1_worldy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `v1World` should have a snake case name
[INFO] [stdout]    --> src/main.rs:126:17
[INFO] [stdout]     |
[INFO] [stdout] 126 |         let ref v1World: Vec3<f64> = Vec3::new(v1Worldy.x, v1Worldy.y, v1Worldy.z);
[INFO] [stdout]     |                 ^^^^^^^ help: convert the identifier to snake case: `v1_world`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `v2Worldy` should have a snake case name
[INFO] [stdout]    --> src/main.rs:127:13
[INFO] [stdout]     |
[INFO] [stdout] 127 |         let v2Worldy = uobject.triangles[i].v3;
[INFO] [stdout]     |             ^^^^^^^^ help: convert the identifier to snake case: `v2_worldy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `v2World` should have a snake case name
[INFO] [stdout]    --> src/main.rs:128:17
[INFO] [stdout]     |
[INFO] [stdout] 128 |         let ref v2World: Vec3<f64> = Vec3::new(v2Worldy.x, v2Worldy.y, v2Worldy.z);
[INFO] [stdout]     |                 ^^^^^^^ help: convert the identifier to snake case: `v2_world`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `v0RasterX` should have a snake case name
[INFO] [stdout]    --> src/main.rs:130:14
[INFO] [stdout]     |
[INFO] [stdout] 130 |         let (v0RasterX, v0RasterY) = computePixelCoordinates(v0World, &worldToCamera, canvasWidth, canvasHeight, imageWidth, imageHeight);
[INFO] [stdout]     |              ^^^^^^^^^ help: convert the identifier to snake case: `v0_raster_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `v0RasterY` should have a snake case name
[INFO] [stdout]    --> src/main.rs:130:25
[INFO] [stdout]     |
[INFO] [stdout] 130 |         let (v0RasterX, v0RasterY) = computePixelCoordinates(v0World, &worldToCamera, canvasWidth, canvasHeight, imageWidth, imageHeight);
[INFO] [stdout]     |                         ^^^^^^^^^ help: convert the identifier to snake case: `v0_raster_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `v1RasterX` should have a snake case name
[INFO] [stdout]    --> src/main.rs:131:14
[INFO] [stdout]     |
[INFO] [stdout] 131 |         let (v1RasterX, v1RasterY) = computePixelCoordinates(v1World, &worldToCamera, canvasWidth, canvasHeight, imageWidth, imageHeight);
[INFO] [stdout]     |              ^^^^^^^^^ help: convert the identifier to snake case: `v1_raster_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `v1RasterY` should have a snake case name
[INFO] [stdout]    --> src/main.rs:131:25
[INFO] [stdout]     |
[INFO] [stdout] 131 |         let (v1RasterX, v1RasterY) = computePixelCoordinates(v1World, &worldToCamera, canvasWidth, canvasHeight, imageWidth, imageHeight);
[INFO] [stdout]     |                         ^^^^^^^^^ help: convert the identifier to snake case: `v1_raster_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `v2RasterX` should have a snake case name
[INFO] [stdout]    --> src/main.rs:132:14
[INFO] [stdout]     |
[INFO] [stdout] 132 |         let (v2RasterX, v2RasterY) = computePixelCoordinates(v2World, &worldToCamera, canvasWidth, canvasHeight, imageWidth, imageHeight);
[INFO] [stdout]     |              ^^^^^^^^^ help: convert the identifier to snake case: `v2_raster_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `v2RasterY` should have a snake case name
[INFO] [stdout]    --> src/main.rs:132:25
[INFO] [stdout]     |
[INFO] [stdout] 132 |         let (v2RasterX, v2RasterY) = computePixelCoordinates(v2World, &worldToCamera, canvasWidth, canvasHeight, imageWidth, imageHeight);
[INFO] [stdout]     |                         ^^^^^^^^^ help: convert the identifier to snake case: `v2_raster_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/main.rs:134:9
[INFO] [stdout]     |
[INFO] [stdout] 134 | ...   output_file.write_fmt(format_args!("<line x1=\"{}\" y1=\"{}\" x2=\"{}\" y2=\"{}\" style=\"stroke:rgb(0,0,0);stroke-width:1\" />", v0RasterX, v0RasterY, v1RasterX, v1RasterY));
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/main.rs:135:9
[INFO] [stdout]     |
[INFO] [stdout] 135 | ...   output_file.write_fmt(format_args!("<line x1=\"{}\" y1=\"{}\" x2=\"{}\" y2=\"{}\" style=\"stroke:rgb(0,0,0);stroke-width:1\" />", v1RasterX, v1RasterY, v2RasterX, v2RasterY));
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/main.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 | ...   output_file.write_fmt(format_args!("<line x1=\"{}\" y1=\"{}\" x2=\"{}\" y2=\"{}\" style=\"stroke:rgb(0,0,0);stroke-width:1\" />", v2RasterX, v2RasterY, v0RasterX, v0RasterY));
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/main.rs:139:5
[INFO] [stdout]     |
[INFO] [stdout] 139 |     output_file.write_all(b"</svg>");
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `multVecMatrix` should have a snake case name
[INFO] [stdout]    --> src/geometry/matrix.rs:178:12
[INFO] [stdout]     |
[INFO] [stdout] 178 |     pub fn multVecMatrix(&self, src: &Vec3<T>) -> Vec3<T> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^ help: convert the identifier to snake case: `mult_vec_matrix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `multDirMatrix` should have a snake case name
[INFO] [stdout]    --> src/geometry/matrix.rs:187:8
[INFO] [stdout]     |
[INFO] [stdout] 187 |     fn multDirMatrix(&self, src: &Vec3<T>) -> Vec3<T> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^ help: convert the identifier to snake case: `mult_dir_matrix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `matrix44_can_be_multVecMatrix` should have a snake case name
[INFO] [stdout]    --> src/geometry/matrix.rs:378:4
[INFO] [stdout]     |
[INFO] [stdout] 378 | fn matrix44_can_be_multVecMatrix() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `matrix44_can_be_mult_vec_matrix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `matrix44_can_be_multDirMatrix` should have a snake case name
[INFO] [stdout]    --> src/geometry/matrix.rs:382:4
[INFO] [stdout]     |
[INFO] [stdout] 382 | fn matrix44_can_be_multDirMatrix() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `matrix44_can_be_mult_dir_matrix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `materialName` should have a snake case name
[INFO] [stdout]   --> src/wavefront/object_parser.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub materialName: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: convert the identifier to snake case: `material_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `materialName` should have a snake case name
[INFO] [stdout]    --> src/wavefront/object_parser.rs:136:13
[INFO] [stdout]     |
[INFO] [stdout] 136 |     let mut materialName: String = "".to_string();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: convert the identifier to snake case: `material_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_ValueGroup_value` should have a snake case name
[INFO] [stdout]    --> src/wavefront/object_parser.rs:369:8
[INFO] [stdout]     |
[INFO] [stdout] 369 | named!(parse_ValueGroup_value<Value>,
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `parse_value_group_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_ValueGroup_names` should have a snake case name
[INFO] [stdout]    --> src/wavefront/object_parser.rs:377:8
[INFO] [stdout]     |
[INFO] [stdout] 377 | named!(parse_ValueGroup_names<Vec<String> >,
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `parse_value_group_names`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_smoothing_ValueGroup_value` should have a snake case name
[INFO] [stdout]    --> src/wavefront/object_parser.rs:396:8
[INFO] [stdout]     |
[INFO] [stdout] 396 | named!(parse_smoothing_ValueGroup_value<Value>,
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `parse_smoothing_value_group_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_smoothing_ValueGroup` should have a snake case name
[INFO] [stdout]    --> src/wavefront/object_parser.rs:404:8
[INFO] [stdout]     |
[INFO] [stdout] 404 | named!(parse_smoothing_ValueGroup<isize>,
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `parse_smoothing_value_group`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_ValueGroup_value_should_parse_properly` should have a snake case name
[INFO] [stdout]     --> src/wavefront/object_parser.rs:1036:8
[INFO] [stdout]      |
[INFO] [stdout] 1036 |     fn parse_ValueGroup_value_should_parse_properly() {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `parse_value_group_value_should_parse_properly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_smoothing_ValueGroup_value_should_parse_properly` should have a snake case name
[INFO] [stdout]     --> src/wavefront/object_parser.rs:1050:8
[INFO] [stdout]      |
[INFO] [stdout] 1050 |     fn parse_smoothing_ValueGroup_value_should_parse_properly() {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `parse_smoothing_value_group_value_should_parse_properly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 84 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 13.05s
[INFO] running `Command { std: "docker" "inspect" "cf99939340efe727f17e51062dd7e3ad38829082c29e34892c7786760e16e3e5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cf99939340efe727f17e51062dd7e3ad38829082c29e34892c7786760e16e3e5", kill_on_drop: false }`
[INFO] [stdout] cf99939340efe727f17e51062dd7e3ad38829082c29e34892c7786760e16e3e5
